Real-Time Compacting Garbage Collection

نویسندگان

  • Mats Bengtsson
  • Boris Magnusson
چکیده

1. Introduction Traditional batch garbage collection techniques lead to long delays in the programming execution. Different methods to reduce the delays have been suggested. These methods can be divided into two classes: those intended to give acceptable pauses in interactive programs (programs that interact with a user), and those intended for real-time programs. In an interactive program, it suffices if the garbage collection delays do not distract the user, i.e., the delays should normally not exceed a few hundred milliseconds, although longer pauses are accepted at rare occasions. Garbage collection algorithms intended for this class of programs are often designed to coop -erate with a virtual memory system [Ung84]. This paper deals with compacting garbage collection in real-time programs, i.e., programs that have to satisfy strict real-time requirements. Real-time programs are used to control physical processes, e.g., the motion of a robot. The required response time may be extremely short, but a response time of a few milliseconds is probably enough in most applications. In a real-time program, the maximum time required by the elementary operations (e.g., object allocation and object access) must be small. Memory reclamation must consequently be performed without causing long and unpredictable delays. It implies that garbage collection has to execute more in parallel, i.e., more interleaved with the program, than in non-real-time programs (so-called incremental garbage collection). It also implies that garbage collection normally has to be scheduled in such a way that free memory never becomes exhausted. We consider real-time programs where virtual memory is excluded due to the unacceptably long time to service page faults. Garbage collection has often been considered unfeasible in real-time applications. The most common arguments have been that it is impossible to guarantee sufficiently short garbage collection delays and that the overhead will be too large. With current hardware, this is not true for a large class of real-time programs. The upper bound on the garbage collection delays can be a fraction of a millisecond even with compacting algorithms, and although the overhead will be large, this is often no reason to exclude garbage collection.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Non-compacting Memory Allocation and Real-time Garbage Collection Dissertation Proposal

Garbage collection is the automatic reclamation of computer storage Knu73, Coh81, Wil92, Wil95]. While in many systems, programmers must explicitly reclaim heap memory at some point in their program by using a \free" or \dispose" statement, garbage collected systems free the programmer from this burden. In spite of its obvious attractiveness for many applications, garbage collection for real-ti...

متن کامل

Garbage Collection Alternatives for Icon

Copying garbage collectors are becoming the collectors of choice for very high-level languages and for functional and object-oriented languages. Copying collectors are particularly efficient for large storage regions because their execution time is proportional only to the amount of accessible data, and they identify and compact this data in one pass. In contrast, mark-and-sweep collectors exec...

متن کامل

A Compacting Garbage Collector for Erlang

By utilising the fact that all data in the heap in an Erlang implementation may be arranged so that all pointers go towards earlier allocated objects, a compacting garbage collection algorithm has been designed. In contrast to a copying garbage collection algorithm, only one memory space is used. In fact, no extra memory is used at all, not even any reserved bits within the cells. The algorithm...

متن کامل

A Compacting Garbage Collector for Unidirectional Heaps

A unidirectional heap is a heap where all pointers go in one direction, e.g. from newer to older objects. For a strict functional language, such as Erlang, the heap may be arranged so that it is unidirectional. We here present a compacting garbage collection algorithm which utilizes the fact that a heap is unidirectional. Only one memory space is used in our algorithm. In fact, no extra memory ...

متن کامل

Staccato: A Parallel and Concurrent Real-time Compacting Garbage Collector for Multiprocessors

Existing real-time garbage collectors are either unable to scale to large multiprocessors, or unable to meet hard real-time requirements even with specialized hardware support. These limitations are rapidly becoming unacceptable: hardware improvements have brought multi-gigabyte heaps and ubiquitous multi-core parallelism; applications have increasingly stringent real-time requirements; and non...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1990